bitkeeper revision 1.1437 (428a354asmqlyMWB8fzDzH6eMgDLow)
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Tue, 17 May 2005 18:17:46 +0000 (18:17 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Tue, 17 May 2005 18:17:46 +0000 (18:17 +0000)
Ensure preempt_stop always loads %ebp with thread-info pointer.
Signed-off-by: Keir Fraser <keir@xensource.com>
linux-2.6.11-xen-sparse/arch/xen/i386/kernel/entry.S

index 897759b1a61da07e1b86ad86cc62a2517af229d2..064be004e75701fb5a9be487911da6ac10a4270e 100644 (file)
@@ -108,7 +108,8 @@ VM_MASK             = 0x00020000
 #define XEN_TEST_PENDING(reg)  testb $0xFF,evtchn_upcall_pending(reg)
 
 #ifdef CONFIG_PREEMPT
-#define preempt_stop           XEN_BLOCK_EVENTS(%esi)
+#define preempt_stop           GET_THREAD_INFO(%ebp)                   ; \
+                               XEN_BLOCK_EVENTS(%esi)
 #else
 #define preempt_stop
 #define resume_kernel          restore_all
@@ -127,7 +128,7 @@ VM_MASK             = 0x00020000
        pushl %ebx; \
        movl $(__USER_DS), %edx; \
        movl %edx, %ds; \
-       movl %edx, %es
+       movl %edx, %es;
 
 #define RESTORE_INT_REGS \
        popl %ebx;      \